Ken thompson : 1 000 lignes de code supprimées, une révolution ?

Ken Thompson, figure mythique de l’informatique, a récemment déclaré que l’une de ses journées les plus productives fut marquée par la suppression de 1 000 lignes de code. Un aveu qui, venant de l’un des pères de l’ère numérique, mérite une attention particulière, surtout alors que l’intelligence artificielle remodèle le paysage professionnel.

L'art de la simplicité : une philosophie de conception

Thompson, dont le nom est indissociable de la création d’Unix aux côtés de Dennis Ritchie, a façonné l’informatique moderne. Son influence s'étend bien au-delà du système d'exploitation, englobant le langage B, précurseur direct de C, et plus récemment, le langage Go, conçu pour répondre aux défis des systèmes de production à grande échelle. Sa démarche est simple : privilégier la modularité, l'efficacité et, surtout, la simplicité.

L'histoire de Thompson n'est pas qu'une épopée technique, c'est une leçon de conception. Chaque projet, qu'il s'agisse d'Unix ou de Go, témoigne de sa conviction que moins, c'est souvent mieux. Un système trop complexe est une bombe à retardement, vulnérable à chaque modification, chaque ajout de fonctionnalité.

Le langage B, conçu comme successeur de BCPL, a pavé la voie à C, un langage qui est resté pendant des décennies la pierre angulaire du développement de systèmes. Des décennies plus tard, chez Google, Thompson a co-créé Go, un langage où la clarté prime sur la sophistication, où la lisibilité est reine. Le résultat ? Un code plus facile à maintenir, à déboguer et à faire évoluer.

Le point crucial, souligné par Thompson, est que chaque ligne de code ajoutée représente une responsabilité accrue : un point de faille potentiel, une charge de maintenance supplémentaire et une complexité accrue. Supprimer du code, ce n'est pas renoncer à l'innovation, c'est affiner, purifier, rendre le système plus robuste et plus agile. C'est moins un acte de destruction qu'un geste de chirurgie, visant à éliminer les excroissances inutiles.

La philosophie de Go, qui incarne cet idéal, est claire : chaque élément absent du langage est une complexité évitée. Cela contraste fortement avec les approches de certains langages comme C++ ou Java, où la syntaxe peut être dense et les mécanismes de concurrence difficiles à maîtriser.

Mais cette approche, qui exige une compréhension profonde du système et un jugement aigu pour discerner l’essentiel du superflu, est de plus en plus rare. Trop souvent, la productivité est mesurée en lignes de code écrites, ignorant le coût caché de la dette technique : le temps perdu à comprendre un code labyrinthique, la fragilité du système, les risques accrus de bugs.

L

L'ia et la nécessité d'une approche minimaliste

Alors que l'IA transforme nos métiers, la leçon de Ken Thompson résonne avec une force particulière. L'automatisation peut générer des quantités massives de code, mais sans une discipline rigoureuse, sans une volonté de simplifier et de purifier, nous risquons de nous retrouver avec des systèmes encore plus complexes, plus difficiles à contrôler et à maintenir. Il ne suffit pas de produire, il faut produire intelligemment, avec parcimonie et élégance.

Comme le disait Bjarne Stroustrup, le créateur de C++, « Il n'existe que deux types de langages de programmation : ceux dont les gens se plaignent et ceux que personne n'utilise. » La voie de la simplicité, incarnée par Thompson, est la voie de la durabilité et de l'efficacité. Un héritage qui transcende les générations de programmeurs.